package ar.com.ctrln.control.compras.proveedor;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import ar.com.ctrln.persistence.model.contacto.Contacto;
import ar.com.ctrln.persistence.model.organizacion.TipoActividad;
import ar.com.ctrln.persistence.model.persona.Direccion;
import ar.com.ctrln.persistence.model.persona.Localidad;
import ar.com.ctrln.persistence.model.persona.Provincia;
import ar.com.ctrln.persistence.model.persona.Telefono;
import ar.com.ctrln.persistence.model.proveedor.Proveedor;
import ar.com.ctrln.services.contacto.GestorContacto;
import ar.com.ctrln.services.organizacion.GestorTipoActividad;
import ar.com.ctrln.services.persona.GestorDireccion;
import ar.com.ctrln.services.persona.GestorLocalidad;
import ar.com.ctrln.services.persona.GestorProvincia;
import ar.com.ctrln.services.persona.GestorTelefono;
import ar.com.ctrln.services.proveedor.GestorProveedor;

@Controller("registrarProveedor")
public class RegistrarProveedor {

	@Autowired
	private GestorProveedor gestorProveedor;

	@Autowired
	private GestorContacto gestorContacto;

	@Autowired
	private GestorDireccion gestorDireccion;

	@Autowired
	private GestorTelefono gestorTelefono;

	@Autowired
	private GestorTipoActividad gestorTipoActividad;

	@Autowired
	private GestorLocalidad gestorLocalidad;

	@Autowired
	private GestorProvincia gestorProvincia;

	private Proveedor proveedor;

	private Direccion direccion;

	private Telefono telefono;

	private Contacto contacto;

	public void nuevoProveedor(Proveedor proveedor) {
		gestorProveedor.guardar(proveedor);
	}
	
	public void actualizarProveedor(Proveedor proveedor) {
		gestorProveedor.actualizar(proveedor);
	}
		
	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}

	public Proveedor getProveedor() {
		if (proveedor == null)
			proveedor = gestorProveedor.nuevoProveedor();
		return this.proveedor;
	}

	public void setDireccion(Direccion direccion) {
		this.direccion = direccion;
	}

	public void setTelefono(Telefono telefono) {
		this.telefono = telefono;
	}

	public Telefono getTelefono() {
		telefono = gestorTelefono.nuevoTelefono();
		return telefono;
	}

	public Direccion getDireccion() {
		if (direccion == null)
			direccion = gestorDireccion.nuevaDireccion();
		return this.direccion;
	}

	public List<TipoActividad> listaTipoActividad() {
		return gestorTipoActividad.listarTipoActividad();
	}

	public List<Provincia> listaProvincias() {
		return gestorProvincia.listarProvincias();
	}

	public List<Localidad> listaLocalidadPorProvincia(long idProvincia) {
		return gestorLocalidad.listarLocalidades(idProvincia);
	}

	public Proveedor getProveedor(String cuit) {
		return gestorProveedor.getProveedor(cuit);
	}

	public Contacto getContacto() {
		contacto = gestorContacto.nuevoContacto();
		return contacto;
	}

	public void setContacto(Contacto contacto) {
		this.contacto = contacto;
	}
	
}

